A computer programming language is a formal language that specifies a set of instructions for a computing device that can be used to create computer programs that the device executes to perform desired tasks. In the context of a client-server environment, such as a client computing device running a web browsing program that accesses a web site over the Internet that is hosted by a server computing device, program code may be executed at the client (i.e., “client-side” execution), or at the server (i.e., “server-side” execution). An example of a programming language is JavaScript. JavaScript code traditionally has been client-side executed, but runtime environments like the Node.js runtime environment has enabled JavaScript code to be server-side executed.
A computing device typically executes the program code of a computer program in a synchronous manner, but may also execute the code asynchronously. For example, if there is a first operation followed by a second operation within the program code, synchronous execution means that the second operation is not executed until execution of the first operation has been completed. By comparison, in asynchronous operation, once execution of the first operation has been initiated, execution of the second operation is initiated, even if the first operation has not been completely executed. The Node.js runtime environment defaults to asynchronous execution, using a single-threaded event-driven programming model.